const events = require('events')
const { EventEmitter } = events
const emitter = new EventEmitter()
// 发布-订阅模式
// 监听first事件
let listener1 = () => {
    console.log('监听到了first1事件')
}
let listener2 = () => {
    console.log('监听到了first-prepend事件')
}
emitter.on('first', listener1)
emitter.on('first', () => {
    console.log('监听到了first2事件')
})
emitter.on('first', () => {
    console.log('监听到了first3事件')
})

emitter.once('first', () => {
    console.log('once:监听到了first事件')
})

emitter.off('first', listener1)
// emitter.addListener('first', () => {
//     console.log('监听到了fist4事件')
// })

emitter.on('second', () => {
    console.log('监听到了second事件')
})

emitter.prependListener('first', listener2)

// emitter.removeAllListeners('first')

emitter.setMaxListeners(20)
console.log('事件名！', emitter.eventNames())
console.log('当前监听器的最大个数', emitter.getMaxListeners())
console.log('first事件监听器的个数', emitter.listenerCount('first'))
console.log('first事件监听器的副本', emitter.listeners('first'))
// 触发first事件
emitter.emit('first')
emitter.emit('first')
emitter.emit('second')


